Working with PrizmDoc > Administering PrizmDoc > System Configuration > Configuring the Viewing Client > Configuration Options > Enabling Content Encryption |
This topic contains the following information:
The goal of content encryption is to provide an obscured transfer of data from the PrizmDoc Server to the Viewing Client website, preventing unauthorized agents to discern the content being transmitted. Additional security can be enabled by configuring the Viewing Client and server to communicate over the Secured Socket Layer (SSL), https protocol, rather than standard non-secure http protocol. In cases where this is not viable or enough protection, the content encryption adds a strong measure of privacy to the document content. When content encryption is enabled, the web data images and document text strings sent to the Viewing Client will be encrypted and then decrypted by the Viewing Client.
This feature is not supported in IE8. |
Content encryption must be enabled in the Viewing Client and in the PrizmDoc Server; it is disabled by default. Enabling content encryption in the Viewing Client is straightforward and performed by an option passed to the Viewing Client constructor or jQuery plugin. This process is documented below.
There are two options for enabling content encryption on the server:
These options are both documented below.
For the security conscious, toggling content encryption per viewing session is not permitted in the out of box product configuration. It must be explicitly allowed via the ServiceHost pcc.config file. |
Finally, it’s important to note it must be enabled or disabled on both the Viewing Client and server, or unexpected behavior will occur. If encryption is enabled on the server but not for the Viewing Client, then the content will not be rendered correctly. If encryption is enabled for the Viewing Client but not on the server, then the content will not be encrypted during transit, however, it will be rendered correctly in the Viewing Client.
In summary:
To enable Content Encryption follow the steps below:
Encrypted Transmission Copy Code# Controls whether or not content is encrypted by the back end before being
# transmitted to a client viewer. The client viewer will decrypt the content in
# the browser. This is useful for DRM, making it more difficult to copy
# protected content that has been delivered to the browser.
#
viewing.contentEncryption.enabled: true
Encrypted Transmission Copy Code# Defines the list of allowed values for the pageContentEncryption viewing
# session creation option.
#
# Must be an array with either ONE or ALL of the following strings:
#
# "default" - Allow REST API callers to create a new viewing session without
# explicitly stating whether or not page content encryption (DRM)
# should be applied. The value configured in this file at
# viewing.contentEncryption.enabled will be used to determine
# whether or not page encryption is applied.
#
# "enabled" - Allows REST API callers to explicitly enable page content
# encryption (DRM) when creating a new viewing session, overriding
# whatever value is configured in this file by
# viewing.contentEncryption.enabled.
#
# "disabled" - Allows REST API callers to explicitly disable page content
# encryption (DRM) when creating a new viewing session, overriding
# whatever value is configured in this file by
# viewing.contentEncryption.enabled.
#
viewing.sessionConstraints.pageContentEncryption.allowedValues: ["default","enabled","disabled"]
Example Copy Code viewingSessionProperties.pageContentEncryption = "enabled"; .... // Serialize document properties as JSON which will go into the body of the request string requestBody = serializer.Serialize(viewingSessionProperties); requestStream.Write(requestBody);
To enable encryption in the Viewing Client, provide the encryption option in the viewer options parameter as follows so that the Viewing Client can handle encrypted data:
Example |
Copy Code
|
---|---|
function buildViewerOptions() { ... var optionsOverride = args.pop(); // always last arg var options = { ... encryption: true }; var combinedOptions = _.extend(optionsOverride, options); embedViewer(combinedOptions); } |
Enabling the encryption will not work without setting the configuration parameter as described above. Also, if the PrizmDoc Server configuration setting is either not set or the PrizmDoc Server is not restarted, the data will arrive unencrypted. |
Refer to these topics for additional information:
To disable Content Encryption in the PrizmDoc Server, follow the steps below:
Unencrypted Transmission Copy Code# Controls whether or not content is encrypted by the back end before being
# transmitted to a client viewer. The client viewer will decrypt the content in
# the browser. This is useful for DRM, making it more difficult to copy
# protected content that has been delivered to the browser.
#
viewing.contentEncryption.enabled: false
To disable encryption in the Viewing Client, use the Viewing Client's default behavior without providing the encryption option. By default, the Viewing Client sets the encryption value to 'false'. Should you wish not to use the encryption in the viewer options parameter, set the encryption option to false as shown below:
Example |
Copy Code
|
---|---|
function buildViewerOptions() { ... var optionsOverride = args.pop(); // always last arg var options = { ... encryption: false }; var combinedOptions = _.extend(optionsOverride, options); embedViewer(combinedOptions); } |
Enabling/disabling the encryption will not work without appropriately setting the PrizmDoc Server configuration. |